﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	//⾥⾯的 %d 就是占位符，表⽰这个位置要⽤其他值来替换。占位符的第⼀个字符⼀律为百分号% ，第⼆个字符表⽰占位符的类型
	//%d 表⽰这⾥代⼊的值必须是⼀个整数
	printf("There are %d apples \n", 3);

	//%s 占位符
	printf("%s will come tonight\n", "Zhangsan"); 
	

	//输出文本里面可以使用多个占位符
	//printf() 参数与占位符是⼀ 对应关系，如果有 n 个占位符， printf() 的参数就应该有 n +1 个。如果参数个数少于对应的占位符， printf() 可能会输出内存中的任意值。
	printf("My %s is %d years", "age");//缺少的话则会随机生成一个数


	//printf()允许限定占位符的最小宽度, 在%和d之间加上数字即可.
	//输出的值默认是右对齐,即在输出内容前添加空格. 如果希望改成左对齐, 在输出内容后添加空格. 可以在%后面插入一个"-"号
	printf("%5d\n", 123);//输出为"  123"

	//对于小数,这个限定符会限制所有数字的最小显示宽度.(包括小数点)
	//默认小数点后会有6位小数
	
	//如果你想打印出来的数字总是显示正负号. 那你可以在占位符之中加一个"+"号
	printf("%+d", 100);


	//最小宽度和最小位数这两个限定值, 都可以用*代替. %*.*f
	printf("%*.*f\n", 6, 2, 0.5);
	//等同于
	printf("%6.2f\n", 0.5);

	//输出部分字符串, %.ms. m代表索要输出的字符串长度
	printf("%.5s\n", "hello world");
	return 0;

}